guint prop_id,
const GValue *value,
GParamSpec *pspec);
+static void gtk_about_dialog_style_set (GtkWidget *widget,
+ GtkStyle *previous_style);
+static void dialog_style_set (GtkWidget *widget,
+ GtkStyle *previous_style,
+ gpointer data);
static void update_name_version (GtkAboutDialog *about);
static GtkIconSet * icon_set_new_from_pixbufs (GList *pixbufs);
static void activate_url (GtkWidget *widget,
object_class->finalize = gtk_about_dialog_finalize;
+ widget_class->style_set = gtk_about_dialog_style_set;
+
/**
* GtkAboutDialog:name:
*
/* Widgets */
gtk_widget_push_composite_child ();
vbox = gtk_vbox_new (FALSE, 8);
- gtk_container_set_border_width (GTK_CONTAINER (vbox), 8);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (about)->vbox), vbox, TRUE, TRUE, 0);
}
}
+static void
+dialog_style_set (GtkWidget *widget,
+ GtkStyle *previous_style,
+ gpointer data)
+{
+ GtkDialog *dialog;
+
+ dialog = GTK_DIALOG (widget);
+
+ /* Override the style properties with HIG-compliant spacings. Ugh.
+ * http://developer.gnome.org/projects/gup/hig/1.0/layout.html#layout-dialogs
+ * http://developer.gnome.org/projects/gup/hig/1.0/windows.html#alert-spacing
+ */
+
+ gtk_container_set_border_width (GTK_CONTAINER (dialog->vbox), 12);
+ gtk_box_set_spacing (GTK_BOX (dialog->vbox), 12);
+
+ gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), 0);
+ gtk_box_set_spacing (GTK_BOX (dialog->action_area), 6);
+}
+
+static void
+gtk_about_dialog_style_set (GtkWidget *widget,
+ GtkStyle *previous_style)
+{
+ if (GTK_WIDGET_CLASS (gtk_about_dialog_parent_class)->style_set)
+ GTK_WIDGET_CLASS (gtk_about_dialog_parent_class)->style_set (widget, previous_style);
+
+ dialog_style_set (widget, previous_style, NULL);
+}
+
/**
* gtk_about_dialog_get_name:
* @about: a #GtkAboutDialog
g_free (link);
}
+static gboolean
+link_button_enter (GtkWidget *widget,
+ GdkEventCrossing *event,
+ GtkAboutDialog *about)
+{
+ GtkAboutDialogPrivate *priv = (GtkAboutDialogPrivate *)about->private_data;
+ gdk_window_set_cursor (widget->window, priv->hand_cursor);
+
+ return FALSE;
+}
+
+static gboolean
+link_button_leave (GtkWidget *widget,
+ GdkEventCrossing *event,
+ GtkAboutDialog *about)
+{
+ gdk_window_set_cursor (widget->window, NULL);
+
+ return FALSE;
+}
+
static GtkWidget *
create_link_button (GtkWidget *about,
gchar *text,
set_link_button_text (about, button, text);
g_signal_connect (button, "clicked", callback, data);
+ g_signal_connect (button, "enter_notify_event",
+ G_CALLBACK (link_button_enter), data);
+ g_signal_connect (button, "leave_notify_event",
+ G_CALLBACK (link_button_leave), data);
return button;
}
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (view), FALSE);
gtk_text_view_set_editable (GTK_TEXT_VIEW (view), FALSE);
+
gtk_text_view_set_left_margin (GTK_TEXT_VIEW (view), 8);
gtk_text_view_set_right_margin (GTK_TEXT_VIEW (view), 8);
G_CALLBACK (credits_visibility_notify_event), about);
sw = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw),
+ GTK_SHADOW_IN);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
g_signal_connect (dialog, "destroy",
G_CALLBACK (gtk_widget_destroyed),
&(priv->credits_dialog));
+ g_signal_connect (dialog, "style_set",
+ G_CALLBACK (dialog_style_set), NULL);
notebook = gtk_notebook_new ();
- gtk_container_set_border_width (GTK_CONTAINER (notebook), 8);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), notebook, TRUE, TRUE, 0);
if (priv->authors != NULL)
g_signal_connect (dialog, "destroy",
G_CALLBACK (gtk_widget_destroyed),
&(priv->license_dialog));
+ g_signal_connect (dialog, "style_set",
+ G_CALLBACK (dialog_style_set), NULL);
sw = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw),
GTK_POLICY_NEVER,
GTK_POLICY_AUTOMATIC);
g_signal_connect (sw, "map", G_CALLBACK (set_policy), NULL);
- gtk_container_set_border_width (GTK_CONTAINER (sw), 8);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), sw, TRUE, TRUE, 0);
view = gtk_text_view_new ();
gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (view), FALSE);
gtk_text_view_set_editable (GTK_TEXT_VIEW (view), FALSE);
+
gtk_text_view_set_left_margin (GTK_TEXT_VIEW (view), 8);
gtk_text_view_set_right_margin (GTK_TEXT_VIEW (view), 8);